import md5 from 'js-md5'
export default class signMd5Utils {
	/**
	 * json参数升序
	 * @param jsonObj 发送参数
	 */
	static sortAsc(jsonObj) {
		let arr = new Array();
		let num = 0;
		for (let i in jsonObj) {
			if (typeof(jsonObj[i]) == 'boolean' || typeof(jsonObj[i]) == 'string' || typeof(jsonObj[i]) == 'number') {
				arr[num] = i;
				num++;
			}
		}
		let sortArr = arr.sort();
		let sortObj = {};
		for (let i in sortArr) {
			sortObj[sortArr[i]] = String(jsonObj[sortArr[i]]);
		}
		return sortObj;
	}
	/**
	 * json参数升序
	 * @param jsonObj 发送参数
	 */
	static sortAsc2(jsonObj) {
		let arr = new Array();
		let num = 0;
		for (let i in jsonObj) {
			arr[num] = i;
			num++;
		}
		let sortArr = arr.sort();
		let sortObj = {};
		for (let i in sortArr) {
			if(jsonObj[sortArr[i]]!==null&&jsonObj[sortArr[i]]!==undefined&&jsonObj[sortArr[i]]!==""){
				sortObj[sortArr[i]] = String(jsonObj[sortArr[i]])
			}else{
				sortObj[sortArr[i]] = jsonObj[sortArr[i]]
			};
		}
		return sortObj;
	}
	/**
	 * @param url 请求的url,应该包含请求参数(url的?后面的参数)
	 * @param requestParams 请求参数(POST的JSON参数)
	 * @@param {timestamp} 时间戳 
	 * @returns {string} 获取签名
	 */
	static getSign(query) {
		// console.log(query)
		// 注意get请求入参不能太复杂，否则走post 如果是数组的取第一个/最后一个，或者拼接成一个传给后端
		// if (method === "get") {
		// 	for (let key in query) {
		// 		if (isArray(query[key]) && query[key].length) {
		// 			query[key] = query[key][0] + "";
		// 		} else {
		// 			query[key] = query[key] + "";
		// 		}
		// 	}
		// }	
		// let urls = this.returnNewUrl(query.url)
		let requestBody = this.sortAsc({
			...query,
			// url: urls
		});
		let string = JSON.stringify(requestBody)
		return String(md5(string));
	}

	/**
	 *
	 * 
	 */
	static returnNewUrl(url) {
		// console.log(url);
		// let newUrl
		// let reg1 = new RegExp("app/appsystem")
		// let reg2 = new RegExp("activity/system")
		// let reg3 = new RegExp("nft/system")
		// newUrl =url.split('?')[0];
		// console.log(newUrl);
		let newArr = url.split('?')[0].split('/')
		// newUrl = '/'+newArr[2]+'/'+newArr[3]
		// let urlArr = url.split('/');
		// console.log(urlArr);
		// return newUrl
		return newArr[newArr.length - 1]
	}
}